import 'reflect-metadata'

export function Get(path: string = ''): MethodDecorator {
  /**
   * @description:
   * @param {any} target 类原型 AppController.property
   * @param {string} propertyKey 方法键名 index
   * @param {PropertyDescriptor} descriptor index 方法的属性描述器
   * @return {*}
   */
  return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
    // 给 descriptor.value 添加元数据，也就是 index 函数添加元数据， path = path
    Reflect.defineMetadata('path', path, descriptor.value)
    // 给 descriptor.value 添加元数据，也就是 index 函数添加元数据， method = get
    Reflect.defineMetadata('method', 'get', descriptor.value)
  }
}
